// pages/login/login.js
import { apiUrl, StorageKeys } from "../../api.js";
import { getCategoryList } from "../../api.js";
import { getLocationList } from "../../api.js";

const $api = require('../../utils/request.js');


//index.js
//获取应用实例
const app = getApp()

Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo: {},
    hasUserInfo: false,
    canIUseGetUserProfile: false,
    canIUse: wx.canIUse('button.open-type.getUserInfo'),
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    if (wx.getUserProfile) {
      this.setData({
        canIUseGetUserProfile: true
      })
    }
    //已登录的用户，直接跳到 Home 页
    app.globalData.userInfo = wx.getStorageSync(StorageKeys.USERINFO)
    if (app.globalData.userInfo) {
      app.globalData.userInfo
      getCategoryList();
      getLocationList();
      //切换到首页
      wx.switchTab({
        url: '/pages/home/home'
      })
      // wx.navigateTo({
      //   url: '/pages/index/index'
      // })
    }
  },

  //2025.04.02 这个也不会弹了。新规则，不能直接获取头像啥的了，所以用 getUserInfo 登录
  getUserProfile(e) {
    // 推荐使用wx.getUserProfile获取用户信息，开发者每次通过该接口获取用户个人信息均需用户确认
    // 开发者妥善保管用户快速填写的头像昵称，避免重复弹窗
    wx.getUserProfile({
      desc: '用于完善会员资料', // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
      success: (res) => {
        app.globalData.userInfo = res.userInfo,
          app.globalData.hasUserInfo = true,
          this.setData({
            userInfo: res.userInfo,
            hasUserInfo: true
          }),

          wx.login({
            success(res) {
              console.log(res)
              var obj = {
                code: res.code,
                userInfo: app.globalData.userInfo
              };
              $api.post(apiUrl + '/auth/login', obj)
                .then(res => {
                  //TODO Logo图片
                  imageUrl = res.userInfo.avatarUrl;

                  console.log('imageUrl=>' + imageUrl)
                  res.userInfo.avatarUrl = imageUrl.startsWith('http') ? imageUrl : apiUrl + imageUrl

                  console.log('res.userInfo.avatarUrl=>', res.userInfo.avatarUrl)
                  console.log('userInfo=>', res.userInfo)
                  wx.setStorageSync(StorageKeys.USERINFO, res.userInfo);
                  wx.setStorageSync(StorageKeys.TOKEN, res.token);
                  getCategoryList();
                  getLocationList();
                })
                .catch(err => {
                  hasUserInfo: false
                  wx.showModal({
                    title: '出错',
                    content: JSON.stringify(err),//'这是一个模态弹窗',
                    showCancel: false,
                  })
                })
              //切换到首页
              wx.switchTab({
                url: '/pages/home/home'
              })
              // wx.navigateTo({ 
              //   url: '/pages/index/index'
              // })
            }
          })
      }
    })
  },


  getUserInfo: function (e) {
    app.globalData.userInfo = e.detail.userInfo
    this.setData({
      userInfo: e.detail.userInfo
    })
    wx.login({
      success(res) {
        console.log(res)
        var obj = {
          code: res.code,
          userInfo: app.globalData.userInfo
        };
        $api.post(apiUrl + '/auth/login', obj)
          .then(res => {
            var imageUrl = res.userInfo.avatarUrl;
            // console.log('imageUrl=>', imageUrl)
            res.userInfo.avatarUrl = imageUrl.startsWith('http') ? imageUrl : apiUrl + imageUrl
            // console.log('res.userInfo.avatarUrl=>', res.userInfo.avatarUrl)
            console.log('userInfo=>', res.userInfo)
            hasUserInfo: true;
            //请求成功  
            res.userInfo.nickName = res.userInfo.nickName === "微信用户" ? "" : res.userInfo.nickName;
            app.globalData.userInfo = res.userInfo;
            wx.setStorageSync(StorageKeys.USERINFO, res.userInfo);
            wx.setStorageSync(StorageKeys.TOKEN, res.token);
            getCategoryList();
            getLocationList();
            //切换到首页
            wx.switchTab({
              url: '/pages/home/home'
            })
          })
          .catch(err => {
            console.log("catch", err);
            hasUserInfo: false
            wx.showModal({
              title: '出错',
              content: JSON.stringify(err.message || err),//'这是一个模态弹窗',
              showCancel: false,
            })
          })
        // wx.navigateTo({ 
        //   url: '/pages/index/index'
        // })
      }
    })
  },


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})